﻿using System.Collections.Generic;
using System.Linq;
using Servicios.Data.DataBases.Portal;

namespace Servicios.Data.DataBases.Portal
{
    public partial class UsuariosPortalDTO
    {
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        /// <param name="idUsuario">Usuario</param>
        /// <param name="password">Password</param>
        public UsuariosPortalDTO(string idUsuario, string password)
        {
            this.IDUsuario = idUsuario;
            this.Clave = password;
        }
        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public UsuariosPortalDTO()
        { }

        #region IDataTransferObject<UsuarioPortalDTO> Members

        public List<UsuariosPortalDTO> GetAll()
        {
            using (NotasEntities notasEntidades = new NotasEntities())
            {
                return (from usuario in notasEntidades.UsuariosPortalSet
                        select usuario).ToList<UsuariosPortalDTO>();
            }
        }

        public UsuariosPortalDTO GetByID(int id)
        {
            using (NotasEntities NotasEntities = new NotasEntities())
            {
                return (from usuario in NotasEntities.UsuariosPortalSet
                        where usuario.IDNumerico == id
                        select usuario).First();
            }
        }

        public void Save()
        {
            using (NotasEntities NotasEntities = new NotasEntities())
            {
                NotasEntities.AddToUsuariosPortalSet(this);
                NotasEntities.SaveChanges();
            }
        }

        public void Update()
        {
        }


        public void Delete()
        {
            using (var NotasEntities = new NotasEntities())
            {
                NotasEntities.DeleteObject(NotasEntities.UsuariosPortalSet.Where(i => i.IDNumerico == this.IDNumerico).First());
                NotasEntities.UsuariosPortalSet.Context.SaveChanges();
            }
        }

        #endregion



        public UsuariosPortalDTO GetByIdUsuario(string idUsuario)
        {
            using (var notasEntities = new NotasEntities())
            {
                return (from usuario in notasEntities.UsuariosPortalSet
                        where usuario.IDUsuario.Equals(idUsuario)
                        select usuario).First();
            }
        }

        public bool Validate()
        {
            using (var notasEntities = new NotasEntities())
            {
                return ((from usuario in notasEntities.UsuariosPortalSet
                         where usuario.IDUsuario.Equals(this.IDUsuario) && usuario.Clave.Equals(this.Clave)
                         select usuario).Count() == 0 ? false : true);
            }
        }
    }
}
